RUN: echo ',,_Z3Foo!' \
RUN:      '_Z3Foo"'   \
RUN:      '_Z3Foo#'   \
RUN:      '_Z3Foo%'   \
RUN:      '_Z3Foo&'   \
RUN:      "\"_Z3Foo'\"" \
RUN:      '_Z3Foo('   \
RUN:      '_Z3Foo)'   \
RUN:      '_Z3Foo*'   \
RUN:      '_Z3Foo+'   \
RUN:      '_Z3Foo,'   \
RUN:      '_Z3Foo-'   \
RUN:      '_Z3Foo/'   \
RUN:      '_Z3Foo:'   \
RUN:      '_Z3Foo;'   \
RUN:      '_Z3Foo<'   \
RUN:      '_Z3Foo='   \
RUN:      '_Z3Foo>'   \
RUN:      '_Z3Foo?'   \
RUN:      '_Z3Foo@'   \
RUN:      '_Z3Foo['   \
RUN:      '_Z3Foo\'   \
RUN:      '_Z3Foo]'   \
RUN:      '_Z3Foo^'   \
RUN:      '_Z3Foo`'   \
RUN:      "\"_Z3Foo{\"" \
RUN:      '_Z3Foo|'   \
RUN:      '_Z3Foo}'   \
RUN:      '_Z3Foo~,,' \
RUN:      '_Z3Foo⦙_Z3Bar' \
RUN:      '_Z3Foo,,_Z3Bar::_Z3Baz  _Z3Foo,_Z3Bar:_Z3Baz' \
COM: Piping the echo output causes '⦙' to be converted to '?' in some
COM: builds/environments. Redirect echo output to and from %t to work
COM: around this. See D111072.
RUN:      '_Z3Foo$ ._Z3Foo' > %t
RUN:      llvm-cxxfilt -n < %t | FileCheck %s

CHECK: ,,Foo!
CHECK: Foo"
CHECK: Foo#
CHECK: Foo%
CHECK: Foo&
CHECK: Foo'
CHECK: Foo(
CHECK: Foo)
CHECK: Foo*
CHECK: Foo+
CHECK: Foo,
CHECK: Foo-
CHECK: Foo/
CHECK: Foo:
CHECK: Foo;
CHECK: Foo<
CHECK: Foo=
CHECK: Foo>
CHECK: Foo?
CHECK: Foo@
CHECK: Foo[
CHECK: Foo\
CHECK: Foo]
CHECK: Foo^
CHECK: Foo`
CHECK: Foo{
CHECK: Foo|
CHECK: Foo}
CHECK: Foo~,,
CHECK: Foo⦙Bar
CHECK: Foo,,Bar::Baz  Foo,Bar:Baz
CHECK: _Z3Foo$ ._Z3Foo
